package com.fsnbigdata.service.api;

import com.fsnbigdata.domain.Taxonomy;

import java.math.BigInteger;
import java.util.List;

/**
 * Created by zhongcheng on 12/10/2017.
 */
public interface HintService {

    /**
     * kingdom
     */
    List<Taxonomy> findByKingdomLike(String kingdom);

    /**
     * subKingdom
     */
    List<Taxonomy> findByKingdomAndSubKingdomLike(String kingdom, String phylumn);

    /**
     * phylumn
     */
    List<Taxonomy> findByKingdomAndPhylumnLike(String kingdom, String phylumn);

    /**
     * subPhylumn
     */
    List<Taxonomy> findByPhylumnAndSubPhylumnLike(String phylumn, String subPhylumn);

    /**
     * tTClass
     */
    List<Taxonomy> findByPhylumnAndTClassLike(String phylumn, String tClass);

    /**
     * subClass
     */
    List<Taxonomy> findByTClassAndSubClassLike(String tClass, String subClass);

    /**
     * tOrder
     */
    List<Taxonomy> findByTClassAndTOrderLike(String tClass, String tOrder);

    /**
     * subOrder
     */
    List<Taxonomy> findByTOrderAndSubOrderLike(String tOrder, String subOrder);

    /**
     * family
     */
    List<Taxonomy> findByTOrderAndFamilyLike(String tOrder, String family);

    /**
     * subFamily
     */
    List<Taxonomy> findByFamilyAndSubFamilyLike(String family, String subFamily);

    /**
     * genus
     */
    List<Taxonomy> findByFamilyAndGenusLike(String family, String genus);

    /**
     * subGenus
     */
    List<Taxonomy> findByGenusAndSubGenusLike(String genus, String subGenus);

    /**
     * species
     */
    List<Taxonomy> findByGenusAndSpeciesLike(String family, String species);

    /**
     * subSpecies
     */
    List<Taxonomy> findBySpeciesAndSubSpeciesLike(String species, String subSpecies);


    public abstract Taxonomy findOne(Long organismId);
    //自定义方法
    List<Object> findAllTree(String kingdom,String phylumn,String tClass,String tOrder,String family,String genus);

    List<Object> findAllByKingdomAndKingdomLatin();

    List<Object> findAllByGenusTree(String name);

    List<BigInteger> findAllByOrganism(String kingdom, String phylumn,String tClass,String tOrder,String family,String genus);

    List<BigInteger> getByKingdom(String kingdom);
}
